package cn.fl.capital.transform;

import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.capital.dto.CapClaimInfoDTO;
import cn.fl.capital.vo.CapClaimInfoVO;


 /**
 * @Description: 超时理赔记录表 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据 
 * @Description: VO转换数据变成DTO传递到服务端 
 * @Description: VO不能在服务端出现
 */
public class CapClaimInfoVOTransform{


	/**
	 * DTO 转  VO
	 * @param po CapClaimInfoDTO
	 * @return CapClaimInfoVO
	 */
	public static CapClaimInfoVO baseToVO(CapClaimInfoDTO dto) {
		CapClaimInfoVO  vo = null;
		if (dto != null) { 
			vo = new CapClaimInfoVO();
			vo.setId(dto.getId());
			vo.setPayId(dto.getPayId());//付款ID
			vo.setTakeMs(dto.getTakeMs());//付款流程总耗时（毫秒）
			vo.setClaimAmt(dto.getClaimAmt());//应理赔金额(分)
			vo.setClaStsCd(dto.getClaStsCd());//理赔状态CAP0047：1.赔付审核中2 放款中3已赔付4赔付审核不通过 5赔付失败
			vo.setIsDel(dto.getIsDel());//是否删除（1：是，0：否）

			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人
			
			vo.setPrjId(dto.getPrjId());//项目ID
			vo.setPrjPrdId(dto.getPrjPrdId());//项目产品ID
			vo.setPrjPrdDtlId(dto.getPrjPrdDtlId());//项目产品明细ID
			vo.setContNo(dto.getContNo());//合同号
			vo.setSalContNo(dto.getSalContNo());//买卖合同号
			vo.setPaySchId(dto.getPaySchId());//支付表ID
			vo.setPaySchNo(dto.getPaySchNo());//支付表号
            vo.setInitPayAmt(dto.getInitPayAmt());//首付款
            vo.setPrdAmt(dto.getPrdAmt());//设备款
			vo.setPrjTypCd(dto.getPrjTypCd());//项目类型
			vo.setCstId(dto.getCstId());//客户ID
			vo.setCstNm(dto.getCstNm());//客户名称
			vo.setSplId(dto.getSplId());//供应商ID
			vo.setSplNm(dto.getSplNm());//供应商名称
			vo.setIsFstCol(dto.getIsFstCol());//是否首期代收
			vo.setPayStsCd(dto.getPayStsCd());//付款状态（CAP0008）: 未申请，申请中，已放款
			vo.setPayTypCd(dto.getPayTypCd());//付款类型（CAP0009）: 正常放款,提前付款,特殊放款
			vo.setPayer(dto.getPayer());//付款方
			vo.setPayerAccNo(dto.getPayerAccNo());//付款方银行账号
			vo.setPayerBkNm(dto.getPayerBkNm());//付款方开户行
			vo.setPayAmt(dto.getPayAmt());//应付金额
			vo.setActPayAmt(dto.getActPayAmt());//实付金额
			vo.setActPayTm(dto.getActPayTm());//实际付款时间
			vo.setExpPayTm(dto.getExpPayTm());//预计付款时间
			vo.setPayRem(dto.getPayRem());//付款备注
			vo.setPayPid(dto.getPayPid());//付款父ID
			vo.setPrInsId(dto.getPrInsId());//流程实例ID
			vo.setCstMgrId(dto.getCstMgrId());//客户经理ID
			vo.setCstMgrNm(dto.getCstMgrNm());//客户经理名称
			vo.setCstMgrOrgCd(dto.getCstMgrOrgCd());//客户经理组织架构Cd
			vo.setBuOrgCd(dto.getBuOrgCd());//所属事业部（组织架构）
			vo.setIsValid(dto.getIsValid());//是否有效（1：是，0：否）
            vo.setFundUse(dto.getFundUse());//资金用途
            vo.setIsUrgent(dto.getIsUrgent());//是否加急
            vo.setIsGrp(dto.getIsGrp());
            vo.setPrInsNo(dto.getPrInsNo());//流程编号-YAOXIURONG
			vo.setMinusAmt(dto.getMinusAmt());
			vo.setAudStsCd(dto.getAudStsCd());
			vo.setIsNew(dto.getIsNew());
			vo.setInsCode(dto.getInsCode());
			vo.setBizTypCd(dto.getBizTypCd());
			vo.setOvdAmt(dto.getOvdAmt());
			vo.setOvdDay(dto.getOvdDay());
			vo.setApplyResCd(dto.getApplyResCd());
			vo.setApplyDt(dto.getApplyDt());
			vo.setIsOtherNoPass(dto.getIsOtherNoPass());
			vo.setClaStsCdNm(dto.getClaStsCdNm());//赔付状态名称
			if(null != dto.getBizFlag()){
				vo.setBizFlag(dto.getBizFlag());//业务标识("PRJ0006")
			}
			if(CollectionUtils.isNotEmpty(dto.getSupportFlowList())){
			    vo.setSupportFlowList(CapPayTypNmValVOTransform.toVOList(dto.getSupportFlowList()));
            }
			if(CollectionUtils.isNotEmpty(dto.getCapClaimDtlDTOList())){
				vo.setCapClaimDtlVOList(CapClaimDtlVOTransform.toVOList(dto.getCapClaimDtlDTOList()));
			}
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param dto CapClaimInfoVO
	 * @return CapClaimInfoDTO
	 */
	public static CapClaimInfoDTO baseToDTO(CapClaimInfoVO vo) {
		CapClaimInfoDTO dto = null;
		if (vo != null) {
			dto = new CapClaimInfoDTO();
			dto.setId(vo.getId());
			dto.setPayId(vo.getPayId());//付款ID
			dto.setTakeMs(vo.getTakeMs());//付款流程总耗时（毫秒）
			dto.setClaimAmt(vo.getClaimAmt());//应理赔金额(分)
			dto.setClaStsCd(vo.getClaStsCd());//理赔状态CAP0047：1.赔付审核中2 放款中3已赔付4赔付审核不通过 5赔付失败
			dto.setIsDel(vo.getIsDel());//是否删除（1：是，0：否）

			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
			
			dto.setPrjId(vo.getPrjId());//项目ID
			dto.setPrjPrdId(vo.getPrjPrdId());//项目产品ID
			dto.setPrjPrdDtlId(vo.getPrjPrdDtlId());//项目产品明细ID
			dto.setContNo(vo.getContNo());//合同号
			dto.setSalContNo(vo.getSalContNo());//买卖合同号
			dto.setPaySchId(vo.getPaySchId());//支付表ID
			dto.setPaySchNo(vo.getPaySchNo());//支付表号
			dto.setPrjTypCd(vo.getPrjTypCd());//项目类型
            dto.setInitPayAmt(vo.getInitPayAmt());//首付款
            dto.setPrdAmt(vo.getPrdAmt());//设备款
			dto.setCstId(vo.getCstId());//客户ID
			dto.setCstNm(vo.getCstNm());//客户名称
			dto.setSplId(vo.getSplId());//供应商ID
			dto.setSplNm(vo.getSplNm());//供应商名
			dto.setIsFstCol(vo.getIsFstCol());//是否首期代收
			dto.setPayStsCd(vo.getPayStsCd());//付款状态（CAP0008）: 未申请，申请中，已放款
			dto.setPayTypCd(vo.getPayTypCd());//付款类型（CAP0009）: 正常放款,提前付款,特殊放款
			dto.setPayer(vo.getPayer());//付款方
			dto.setPayerAccNo(vo.getPayerAccNo());//付款方银行账号
			dto.setPayerBkNm(vo.getPayerBkNm());//付款方开户行
			dto.setPayAmt(vo.getPayAmt());//应付金额
			dto.setActPayAmt(vo.getActPayAmt());//实付金额
			dto.setActPayTm(vo.getActPayTm());//实际付款时间
			dto.setExpPayTm(vo.getExpPayTm());//预计付款时间
			dto.setPayRem(vo.getPayRem());//付款备注
			dto.setPayPid(vo.getPayPid());//付款父ID
			dto.setPrInsId(vo.getPrInsId());//流程实例ID
			dto.setCstMgrId(vo.getCstMgrId());//客户经理ID
			dto.setCstMgrNm(vo.getCstMgrNm());//客户经理名称
			dto.setCstMgrOrgCd(vo.getCstMgrOrgCd());//客户经理组织架构Cd
			dto.setBuOrgCd(vo.getBuOrgCd());//所属事业部（组织架构）
			dto.setIsValid(vo.getIsValid());//是否有效（1：是，0：否）
            dto.setFundUse(vo.getFundUse());//资金用途
            dto.setIsUrgent(vo.getIsUrgent());//是否加急
            dto.setIsGrp(vo.getIsGrp());
			dto.setMinusAmt(vo.getMinusAmt());
			dto.setApplyResCd(vo.getApplyResCd());
			dto.setIsOtherNoPass(vo.getIsOtherNoPass());
			dto.setClaStsCdNm(vo.getClaStsCdNm());//赔付状态名称

			dto.setCurrentUsrId(vo.getCurrentUsrId());
			if(null != vo.getBizFlag()){
				dto.setBizFlag(vo.getBizFlag());//业务标识("PRJ0006")
			}
			
			if(CollectionUtils.isNotEmpty(vo.getPayeeList())){				
				dto.setPayeeList(CapPayeeInfoVOTransform.toDTOList(vo.getPayeeList()));//收款方
			}
			if(CollectionUtils.isNotEmpty(vo.getCapClaimDtlVOList())){				
				dto.setCapClaimDtlDTOList(CapClaimDtlVOTransform.toDTOList(vo.getCapClaimDtlVOList()));
			}
		}
		return dto;
	}
	/**
	 * DTO 转  VO
	 * @param po CapClaimInfoDTO
	 * @return CapClaimInfoVO
	 */
	public static CapClaimInfoVO toVO(CapClaimInfoDTO dto) {
		CapClaimInfoVO  vo = baseToVO(dto);
		//设置自定义扩展属性
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param dto CapClaimInfoVO
	 * @return CapClaimInfoDTO
	 */
	public static CapClaimInfoDTO toDTO(CapClaimInfoVO vo) {
		CapClaimInfoDTO dto = baseToDTO(vo);
		//设置自定义扩展属性
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param List<CapClaimInfoDTO>
	 * @return List<CapClaimInfoVO>
	 */
	public static List<CapClaimInfoVO> toVOList(List<CapClaimInfoDTO> list) {
		List<CapClaimInfoVO>  voList = new ArrayList<CapClaimInfoVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (CapClaimInfoDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
	
	/**
	 * VO集合 转 DTO集合
	 * @param list List<CapClaimInfoVO>
	 * @return List<CapClaimInfoDTO>
	 */
	public static List<CapClaimInfoDTO> toDTOList(List<CapClaimInfoVO> list) {
		List<CapClaimInfoDTO>  dtoList = new ArrayList<CapClaimInfoDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (CapClaimInfoVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}
}
